package com.system.demo.controller.comments;


import cn.dev33.satoken.annotation.SaCheckLogin;
import com.system.demo.entity.comment.CommentsDTO;
import com.system.demo.entity.comment.ReplyDTO;
import com.system.demo.service.comment.CommentService;
import com.system.demo.tool.ResponseResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/comment")
@SaCheckLogin
public class CommentController {

    @Autowired
    private CommentService commentService;

    //新增留言 公共接口 都可以使用
    @PostMapping
    public ResponseResult<?> addComment(@RequestBody CommentsDTO commentsDTO){
        return commentService.addComment(commentsDTO);
    }


    //对留言进行回复
    @PostMapping("/reply")
    public ResponseResult<?> addReply(@RequestBody ReplyDTO replyDTO){
        return commentService.addReply(replyDTO);
    }


    //获取留言 isAll中0代表公共频道的留言 1代表查看个人的留言(我的发布)
    //排列组合结果就是三种：1.公共频道的留言（isAll为0）  2.个人留在公共频道的留言（isAll为1 type为0）  3.个人留在系统留言中的留言（isAll为1 type为1）
    @GetMapping
    public ResponseResult<?> getComments(@RequestParam Integer isAll, @RequestParam Integer type, @RequestParam Integer current, @RequestParam Integer size){
        return commentService.getComments(isAll,type,  current, size);
    }

    //删除留言
    @DeleteMapping
    public ResponseResult<?> deleteComments(@RequestParam Integer commentId){
        return commentService.deleteComments(commentId);
    }
    //删除评论
    @DeleteMapping("/removeReply")
    public ResponseResult<?> removeReply(@RequestParam Integer replyId){
        return commentService.removeReply(replyId);
    }

    //为留言点赞
    @GetMapping("/like")
    public ResponseResult<?> likeComments(@RequestParam Integer commentId){
        return commentService.likeComments(commentId);
    }

    //我评论的（公共频道）
    @GetMapping("/getInvolved")
    public ResponseResult<?> getInvolved(@RequestParam Integer current, @RequestParam Integer size){
        return commentService.getInvolved(current, size);
    }
    //获取排行榜
    @GetMapping("/getRank")
    public ResponseResult<?> getRankingList(){
        return commentService.getRankingList();
    }

    //根据uid获取当前用户的点赞留言id

}
